package com.ivan.servicebase.exceptionhandler;

import com.baomidou.mybatisplus.extension.api.R;
import com.ivan.commonutils.CommonResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author Ivan
 * @date 2020/7/20 23:06
 * @Description: 全局异常处理类
 */
@RestControllerAdvice
public class GlobalExceptionHandler {

    /**
     * @author Ivan
     * @date 2020/7/20 23:08
     * @Description: 全局异常处理
     */
    @ExceptionHandler(Exception.class)
    public CommonResult error(Exception e) {
        e.printStackTrace();
        return CommonResult.fail().message("执行了全局异常处理...");
    }

    /**
     * @author Ivan
     * @date 2020/7/20 23:08
     * @Description: 指定出现什么异常执行这个方法
     */
    @ExceptionHandler(ArithmeticException.class)
    public CommonResult error(ArithmeticException e) {
        e.printStackTrace();
        return CommonResult.fail().message("执行了ArithmeticException异常处理...");
    }

    /**
     * @author Ivan
     * @date 2020/7/20 23:08
     * @Description: 自定义异常处理
     */
    @ExceptionHandler(IvanException.class)
    public CommonResult error(IvanException e) {
        e.printStackTrace();
        return CommonResult.fail().code(e.getCode()).message(e.getMsg());
    }
}
